﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Basicas
{
    [Serializable]
    public class Jornada : IComparable<Jornada>
    {
        private int id;
        private DateTime dataFinal;
        private DateTime dataInicial;
        private String nome;
        private Responsavel responsavel;
        private List<Curso> cursos;
        private bool eh_default;

        #region Construtores
        public Jornada(DateTime dataInicial, DateTime dataFinal, String nome, Responsavel responsavel)
        {
            this.DataInicial = dataInicial;
            this.DataFinal = dataFinal;
            this.Nome = nome;
            this.Responsavel = responsavel;
        }

        public Jornada(int id, DateTime dataInicial, DateTime dataFinal, String nome, Responsavel reponsavel)
        {
            this.Id = id;
            this.DataFinal = dataFinal;
            this.DataInicial = dataInicial;
            this.Nome = nome;
            this.Responsavel = reponsavel;
        }

        public Jornada()
        {
        }

        #endregion

        #region Propriedades

        public bool Eh_default
        {
            get { return eh_default; }
            set { eh_default = value; }
        }

        public int Id
        {
            get { return this.id; }
            set { this.id = value; }
        }

        public DateTime DataFinal
        {
            get { return this.dataFinal; }
            set { this.dataFinal = value; }
        }

        public DateTime DataInicial
        {
            get { return this.dataInicial; }
            set { this.dataInicial = value; }
        }

        public String Nome
        {
            get { return this.nome; }
            set { this.nome = value; }
        }

        public Responsavel Responsavel
        {
            get { return this.responsavel; }
            set { this.responsavel = value; }
        }

        public List<Curso> Cursos
        {
            get { return this.cursos; }
            set { this.cursos = value; }
        }
        #endregion
        
        #region IComparable<Jornada> Members

        public int CompareTo(Jornada jornadaComparada)
        {
            int retorno;
            int valorDaComparacao = this.dataInicial.CompareTo(jornadaComparada.dataInicial);
            
            if (valorDaComparacao < 0)
            {
                retorno = 1;
            }
            else if (valorDaComparacao > 0)
            {
                retorno = -1;
            }
            else
            {
                retorno = 0;
            }

            return retorno;   
        }

        #endregion
    }
}